package org.zsl.ioc.app.spring.app;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.zsl.ioc.app.spring.Topic;

public class Clinet {

    public static void main(String[] args) {


        // v1`
//        Topic topic =new Topic();
//
//        topic.understand();

        // v2  面向接口开发 Topic是个接口
//         Topic topic = new Topic2();
//         topic.understand(); // 不需要改变

        // v3 工厂模式
//         Topic topic =TopicFactory.getInstance();
//         topic.understand(); // 不需要改变

        //v4 spring
        // 把创建对象的权力 交给了 Spring容器
        // 池

        ApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:spring.xml");
         Topic topic = (Topic) context.getBean("topic");
         topic.understand();
    }
}
